Traditionally, many computer systems use standard hardware keyboards as their primary text input devices. However, software keyboards are becoming more popular because of the growing popularity of touch screens (also called touch-sensitive displays). Touch screens are display devices designed with a pressure sensitive panel mounted in front of the screen, which detects where users have touched the screen. Typically, software keyboards provide the same functionality as hardware keyboards with the main difference being that software keyboards are graphically embodied on a touch screen.
Software keyboards are relatively well suited for compact portable devices because they facilitate text input without needing relatively large standard hardware keyboards. Because personal digital assistants are compact and portable, they typically employ software keyboards, instead of larger hardware keyboards. In many personal digital assistants, where typically application programs are not multitasked, software application programs such as calendars, address books, and notepads control placement of a software keyboard. For example, when a calendar application program is executed, it displays the software keyboard at the bottom of the touch screen display device. When software application programs control the placement of software keyboards, typically the software keyboards will not overlay the application program's input space, making the software keyboard relatively easy to use.
However, with the emergence of different and relatively more sophisticated portable computing devices, application programs are less frequently designed to control the placement of software keyboards. For example, web tablets and other similar devices provide multitasking environments, wherein multiple software application programs can run simultaneously. In a multitasking environment, numerous application programs (e.g., web browsers, word processors, email programs, etc.) are launched and/or dragged to arbitrary places on the desktop. As a result, application program input spaces (e.g., text boxes) can appear at arbitrary desktop locations. One disadvantage of such an environment is that the software keyboards often obscure application programs input spaces, requiring the user to move the software keyboard before entering text into the input space. More specifically, for example, when a software keyboard obscures an application program's input space, the user must manually drag the software keyboard away from the input space. When touch screens require the use of a stylus, users must pick up a stylus before dragging software keyboard away from an input space. The constant need for picking up a stylus and and/or dragging the software keyboard away from application program input spaces drastically hinders the efficiency with which text input it is provided to application programs. Moreover, it makes the user experience less pleasant.